package com.wuming.caiwu.service;


import com.wuming.caiwu.core.BusinessException;
import com.wuming.caiwu.model.DmsOrder;
import com.wuming.caiwu.model.FinanceReport;

import java.math.BigDecimal;
import java.util.List;

/**
 * 订单服务
 * Created by hanfei on 16/4/19.
 */
public interface DmsOrderService {

    /**
     * 根据id删除订单信息
     *
     * @param id 订单id
     * @throws BusinessException
     */
    void removeOrderById(Long id) throws BusinessException;

    BigDecimal getProfitsharingMoney(String startDate,String endDate,String orderSn,Long storeId);

    /**
     * 分页查询订单列表
     *
     * @param storeId       店铺ID
     * @param orderSn       订单号
     * @param orderStatus   订单状态
     * @param startDate     开始日期
     * @param endDate       结束日期
     * @param payType       支付类型
     * @param pageIndex     当前页
     * @param pageSize      每页条数
     * @return 订单列表
     * @throws BusinessException
     */
    List<DmsOrder> getDmsOrderByPage(Long storeId,String orderSn,Integer orderStatus, String startDate,String endDate,Integer payType,int pageIndex, int pageSize) throws BusinessException;

    /**
     * 查询总的订单数
     *
     * @param storeId       店铺ID
     * @param orderSn       订单号
     * @param orderStatus   订单状态
     * @param startDate     开始日期
     * @param endDate       结束日期
     * @param payType       支付类型
     * @return 订单总数
     * @throws BusinessException
     */
    int getTotal(Long storeId,String orderSn,Integer orderStatus,String startDate,String endDate,Integer payType) throws BusinessException;



    /**
     * 分页查询财务报表
     *
     * @param storeId       店铺ID
     * @param startDate     开始日期
     * @param endDate       结束日期
     * @param payType       支付类型
     * @param pageIndex     当前页
     * @param pageSize      每页条数
     * @return 订单列表
     * @throws BusinessException
     */
    List<FinanceReport> getFinanceReportByPage(Long storeId, String startDate, String endDate, Integer payType, int pageIndex, int pageSize) throws BusinessException;

    /**
     * 查询总的订单数
     *
     * @param storeId       店铺ID
     * @param startDate     开始日期
     * @param endDate       结束日期
     * @param payType       支付类型
     * @return 订单总数
     * @throws BusinessException
     */
    int getFinanceReportTotal(Long storeId,String startDate,String endDate,Integer payType) throws BusinessException;


}
